"""
======================
Author: 柠檬班-小简
Time: 2022/11/4 21:33
Project: day10_framwork_V7
Company: 湖南零檬信息技术有限公司
======================
"""
from tools.global_data import Data
from setttings import shop_mysql
from tools.handle_replace import replace_mark_by_data
from tools.my_mysql import HandleMySql


def execute_pre_sql(sql_str_list,share_obj):
    """
    前置不一定只有查询。也会存在修改等其它的操作。

    :param sql_str:
    :return:
    """
    # 1、先做替换 -- 如果有##
    sql_list = replace_mark_by_data(sql_str_list, share_obj)
    print(sql_list)
    # 2、再去执行sql语句
    hmysql = HandleMySql(**shop_mysql)
    # 将字符串形式的列表，转换成列表
    sql_list = eval(sql_list)
    for sql in sql_list:
        # sql语句的小写版，以select开头，则表示为查询
        if sql.lower().startswith("select"):
            result = hmysql.select_and_get_result(sql)
            if result:
                # 3、将执行的结果，设置为全局变量。
                # 请注意：查询结果字典当中的key(表的列名)就是全局变量名的key.
                # 如果你不想用表的列名作为全局变量名的key, 在查询语句当中使用as给表的列名取别名。
                for key, value in result.items():
                    setattr(share_obj, key, str(value))
        else:
            # 查询以外的操作
            hmysql.upate(sql)
    hmysql.close_db()


if __name__ == '__main__':
    sql_str = '[\'SELECT mobile_code FROM tz_sms_log WHERE user_phone="#new_phone#"\',' \
              '\'SELECT user_phone FROM tz_sms_log WHERE user_phone="#new_phone#"\']'

    # execute_pre_sql(sql_str)

